package com.example.deepschool.repositories;

import com.example.deepschool.Model.UserCourse;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

/**
 * 用户课程关系的仓库接口，负责对用户课程关系数据的增删改查操作。
 */
@Repository
@Mapper
public interface UserCourseRepository {
	
	/**
	 * 插入一条用户课程关系记录。
	 *
	 * @param userCourse 用户课程关系对象。
	 * @return 插入成功的记录数。
	 */
	Integer insert ( UserCourse userCourse );
	
	/**
	 * 删除一条用户课程关系记录。
	 *
	 * @param userCourse 用户课程关系对象。
	 * @return 删除成功的记录数。
	 */
	Integer delete ( UserCourse userCourse );
	
	/**
	 * 更新一条用户课程关系记录。
	 *
	 * @param userCourse 用户课程关系对象。
	 * @return 更新成功的记录数。
	 */
	Integer update ( UserCourse userCourse );
	
	/**
	 * 根据课程ID查询课程主的用户ID数组。
	 *
	 * @param courseId 课程ID。
	 * @return 用户ID数组。
	 */
	Long[] selectUserIds ( Long courseId );
	
	/**
	 * 根据用户ID查询用户管理的课程ID数组。
	 *
	 * @param userId 用户ID。
	 * @return 课程ID数组。
	 */
	Long[] selectCourseIds ( Long userId );
}
